import dayjs from 'dayjs';

/**
 * 获取时间字符串
 * @param time 
 * @returns {string} 格式化后的时间
 */
export const getTime = (time: number) => {
    const date = time ? dayjs(time) : dayjs();
    return dayjs(date).format('YYYY-MM-DD HH:mm:ss');
};

/**
 *  传入时间戳 分别返回 年 月 日 时 分 秒 如果不传 默认为当前时间 并且补零
 * @param time
 * @returns {object} 格式化后的 年,月,日,时,分,秒
 */
export const getTimeDetial = (time: number) => {
    const date = time ? dayjs(time) : dayjs();
    return {
        year: date.year().toString(),
        month: (date.month() + 1).toString().padStart(2, '0'),
        day: date.date().toString().padStart(2, '0'),
        hour: date.hour().toString().padStart(2, '0'),
        minute: date.minute().toString().padStart(2, '0'),
        second: date.second().toString().padStart(2, '0')
    };
};

/**
 * 传入时间字符串 返回时间戳
 * @param time
 * @returns {number} 时间戳
 */
export const getTimeStamp = (time: string) => {
    return dayjs(time).valueOf();
};

/**
 * 计算时间差 传入开始时间和结束时间的时间戳 返回时间差的时分
 * @param startTime 开始时间 
 * @param endTime 结束时间 
 * @returns {string} 时间差的时分
 */
export const getTimeDiff = (startTime: number, endTime: number) => {
    const startDate = dayjs(startTime);
    const endDate = dayjs(endTime);
    const diff = endDate.diff(startDate, 'second');
    // 如果时间差小于0 返回0
    if (diff <= 0) return '0分';
    const hour = Math.floor(diff / 3600);
    const minute = Math.floor((diff % 3600) / 60);
    return hour == 0 ? `${minute}分` : `${hour}小时${minute}分`
}

/**
 * 传入2个时间戳 判断是否是同一天
 * @param time1 时间戳1
 * @param time2 时间戳2
 * @returns {boolean} 是否是同一天
 */
export const isSameDay = (time1: number, time2: number) => {
    const date1 = dayjs(time1);
    const date2 = dayjs(time2);
    return date1.isSame(date2, 'day');
}

/**
 * 手机号脱敏
 * @param phone 手机号
 * @returns {string} 脱敏后的手机号
 */
export const phoneMask = (phone: string) => {
    return phone.replace(/^(\d{3})\d{4}(\d{4})$/, '$1****$2');
};
/**
 * 弹框提示登录
 */
export const showLogin = () => {
    uni.showModal({
        title: '温馨提示',
        content: '请先登录',
        success: function (res) {
            if (res.confirm) {
                uni.reLaunch({
                    url: '/pages/index/login'
                })
            } else if (res.cancel) {
                console.log('用户点击取消');
            }
        }
    });
};



